package com.itheima.mm.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * @author ：yp
 * @description ：地理信息工具类
 */
public class LocationUtil {
	/**
	 * 通过地址位置信息，解析城市信息
	 * @param location 地理信息，格式 经度,纬度
	 *  114.05,22.55
	 * @return
	 */

	//先注册高德,在开发应用里获取key
	public static String parseLocation(String location){
		//使用HttpClient发送请求到高德地图的逆地理解析的路径，携带key和经纬度坐标，可以获取城市名
		// https://lbs.amap.com/api/webservice/guide/api/georegeo 逆地址解析
		// amap_api 注册高德地图开发者，创建应用，获取apikey
		String amap_api_key = "7518281c559c11033a390188cdd4868e";
		String url = "https://restapi.amap.com/v3/geocode/regeo?key="+amap_api_key+"&"+"location="+location;
		//发送一个Get请求，获取响应数据
		String jsonData =  HttpUtil.httpGet(url);
		JSONObject jsonLocation = JSON.parseObject(jsonData);
		String city = "";
		//获取status，判断status是否等于1 表示请求成功
		if("1".equals(jsonLocation.getString("status"))){

			JSONObject addressComponent =jsonLocation.getJSONObject("regeocode").getJSONObject("addressComponent");
			Object obj = null;
			// 如果是非直辖市，city会返回数据
			if((obj = addressComponent.get("city")) instanceof String){
				//city字段的值是一个字符串，说明当前获取的是非直辖市
				city=  (String)obj;
			}else if ((obj = addressComponent.get("province")) instanceof String){
				// 如果是直辖市，通过province返回数据
				city= (String)obj;
			}

			//将xx市改为xx
			city = city.replace("市","");
		}
		return city;
	}
}
